package com.itheima.utils;

import cn.hutool.core.io.FileUtil;
import cn.hutool.extra.qrcode.QrCodeUtil;
import cn.hutool.extra.qrcode.QrConfig;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.client.j2se.MatrixToImageWriter;
import com.google.zxing.common.BitMatrix;
import com.google.zxing.qrcode.QRCodeWriter;
import org.springframework.util.Base64Utils;

import javax.imageio.ImageIO;
import java.awt.image.BufferedImage;
import java.io.ByteArrayOutputStream;

public class QRCodeUtil {

    /**
     * 二维码测试
     */
    public static void main(String[] args) throws Exception {
        // 二维码中的信息
        String content = "你好!袁和松";

        // 通过zxing生成二维码信息,保存到本地
        QRCodeWriter writer = new QRCodeWriter();
        /**
         * 参数基本配置
         * 1.二维码信息
         * 2.图片类型
         * 3.二维码宽度
         * 4.二维码长度
         */
        BitMatrix bt = writer.encode(content, BarcodeFormat.QR_CODE, 200, 200);

        ByteArrayOutputStream os = new ByteArrayOutputStream();
        // 将二维码以byte数组的形式保存到ByteArrayOutputStream
        BufferedImage bufferedImage = MatrixToImageWriter.toBufferedImage(bt);
        ImageIO.write(bufferedImage, "png", os);
        // 对byte数组进行base64处理
        String encode = Base64Utils.encodeToString(os.toByteArray());
        // data url 形式直接打开
        String url = "data:image/png;base64," + encode;
        // 前端图片标签展示: <img src="" />
        System.out.println(url);
    }


}
